home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / FlowLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  4.5 KB  |  317 lines

  1. package java.awt;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.Serializable;
  6.  
  7. public class FlowLayout implements LayoutManager, Serializable {
  8.    public static final int LEFT = 0;
  9.    public static final int CENTER = 1;
  10.    public static final int RIGHT = 2;
  11.    public static final int LEADING = 3;
  12.    public static final int TRAILING = 4;
  13.    int align;
  14.    int newAlign;
  15.    int hgap;
  16.    int vgap;
  17.    private boolean alignOnBaseline;
  18.    private static final long serialVersionUID = -7262534875583282631L;
  19.    private static final int currentSerialVersion = 1;
  20.    private int serialVersionOnStream;
  21.  
  22.    public FlowLayout() {
  23.       this(1, 5, 5);
  24.    }
  25.  
  26.    public FlowLayout(int var1) {
  27.       this(var1, 5, 5);
  28.    }
  29.  
  30.    public FlowLayout(int var1, int var2, int var3) {
  31.       this.serialVersionOnStream = 1;
  32.       this.hgap = var2;
  33.       this.vgap = var3;
  34.       this.setAlignment(var1);
  35.    }
  36.  
  37.    public int getAlignment() {
  38.       return this.newAlign;
  39.    }
  40.  
  41.    public void setAlignment(int var1) {
  42.       this.newAlign = var1;
  43.       switch (var1) {
  44.          case 3:
  45.             this.align = 0;
  46.             break;
  47.          case 4:
  48.             this.align = 2;
  49.             break;
  50.          default:
  51.             this.align = var1;
  52.       }
  53.  
  54.    }
  55.  
  56.    public int getHgap() {
  57.       return this.hgap;
  58.    }
  59.  
  60.    public void setHgap(int var1) {
  61.       this.hgap = var1;
  62.    }
  63.  
  64.    public int getVgap() {
  65.       return this.vgap;
  66.    }
  67.  
  68.    public void setVgap(int var1) {
  69.       this.vgap = var1;
  70.    }
  71.  
  72.    public void setAlignOnBaseline(boolean var1) {
  73.       this.alignOnBaseline = var1;
  74.    }
  75.  
  76.    public boolean getAlignOnBaseline() {
  77.       return this.alignOnBaseline;
  78.    }
  79.  
  80.    public void addLayoutComponent(String var1, Component var2) {
  81.    }
  82.  
  83.    public void removeLayoutComponent(Component var1) {
  84.    }
  85.  
  86.    public Dimension preferredLayoutSize(Container var1) {
  87.       synchronized(var1.getTreeLock()) {
  88.          Dimension var3 = new Dimension(0, 0);
  89.          int var4 = var1.getComponentCount();
  90.          boolean var5 = true;
  91.          boolean var6 = this.getAlignOnBaseline();
  92.          int var7 = 0;
  93.          int var8 = 0;
  94.  
  95.          for(int var9 = 0; var9 < var4; ++var9) {
  96.             Component var10 = var1.getComponent(var9);
  97.             if (var10.isVisible()) {
  98.                Dimension var11 = var10.getPreferredSize();
  99.                var3.height = Math.max(var3.height, var11.height);
  100.                if (var5) {
  101.                   var5 = false;
  102.                } else {
  103.                   var3.width += this.hgap;
  104.                }
  105.  
  106.                var3.width += var11.width;
  107.                if (var6) {
  108.                   int var12 = var10.getBaseline(var11.width, var11.height);
  109.                   if (var12 >= 0) {
  110.                      var7 = Math.max(var7, var12);
  111.                      var8 = Math.max(var8, var11.height - var12);
  112.                   }
  113.                }
  114.             }
  115.          }
  116.  
  117.          if (var6) {
  118.             var3.height = Math.max(var7 + var8, var3.height);
  119.          }
  120.  
  121.          Insets var15 = var1.getInsets();
  122.          var3.width += var15.left + var15.right + this.hgap * 2;
  123.          var3.height += var15.top + var15.bottom + this.vgap * 2;
  124.          return var3;
  125.       }
  126.    }
  127.  
  128.    public Dimension minimumLayoutSize(Container var1) {
  129.       synchronized(var1.getTreeLock()) {
  130.          boolean var3 = this.getAlignOnBaseline();
  131.          Dimension var4 = new Dimension(0, 0);
  132.          int var5 = var1.getComponentCount();
  133.          int var6 = 0;
  134.          int var7 = 0;
  135.          boolean var8 = true;
  136.  
  137.          for(int var9 = 0; var9 < var5; ++var9) {
  138.             Component var10 = var1.getComponent(var9);
  139.             if (var10.visible) {
  140.                Dimension var11 = var10.getMinimumSize();
  141.                var4.height = Math.max(var4.height, var11.height);
  142.                if (var8) {
  143.                   var8 = false;
  144.                } else {
  145.                   var4.width += this.hgap;
  146.                }
  147.  
  148.                var4.width += var11.width;
  149.                if (var3) {
  150.                   int var12 = var10.getBaseline(var11.width, var11.height);
  151.                   if (var12 >= 0) {
  152.                      var6 = Math.max(var6, var12);
  153.                      var7 = Math.max(var7, var4.height - var12);
  154.                   }
  155.                }
  156.             }
  157.          }
  158.  
  159.          if (var3) {
  160.             var4.height = Math.max(var6 + var7, var4.height);
  161.          }
  162.  
  163.          Insets var15 = var1.getInsets();
  164.          var4.width += var15.left + var15.right + this.hgap * 2;
  165.          var4.height += var15.top + var15.bottom + this.vgap * 2;
  166.          return var4;
  167.       }
  168.    }
  169.  
  170.    private int moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean var8, boolean var9, int[] var10, int[] var11) {
  171.       switch (this.newAlign) {
  172.          case 0:
  173.             var2 += var8 ? 0 : var4;
  174.             break;
  175.          case 1:
  176.             var2 += var4 / 2;
  177.             break;
  178.          case 2:
  179.             var2 += var8 ? var4 : 0;
  180.          case 3:
  181.          default:
  182.             break;
  183.          case 4:
  184.             var2 += var4;
  185.       }
  186.  
  187.       int var12 = 0;
  188.       int var13 = 0;
  189.       int var14 = 0;
  190.       if (var9) {
  191.          int var15 = 0;
  192.  
  193.          for(int var16 = var6; var16 < var7; ++var16) {
  194.             Component var17 = var1.getComponent(var16);
  195.             if (var17.visible) {
  196.                if (var10[var16] >= 0) {
  197.                   var12 = Math.max(var12, var10[var16]);
  198.                   var15 = Math.max(var15, var11[var16]);
  199.                } else {
  200.                   var13 = Math.max(var17.getHeight(), var13);
  201.                }
  202.             }
  203.          }
  204.  
  205.          var5 = Math.max(var12 + var15, var13);
  206.          var14 = (var5 - var12 - var15) / 2;
  207.       }
  208.  
  209.       for(int var18 = var6; var18 < var7; ++var18) {
  210.          Component var19 = var1.getComponent(var18);
  211.          if (var19.isVisible()) {
  212.             int var20;
  213.             if (var9 && var10[var18] >= 0) {
  214.                var20 = var3 + var14 + var12 - var10[var18];
  215.             } else {
  216.                var20 = var3 + (var5 - var19.height) / 2;
  217.             }
  218.  
  219.             if (var8) {
  220.                var19.setLocation(var2, var20);
  221.             } else {
  222.                var19.setLocation(var1.width - var2 - var19.width, var20);
  223.             }
  224.  
  225.             var2 += var19.width + this.hgap;
  226.          }
  227.       }
  228.  
  229.       return var5;
  230.    }
  231.  
  232.    public void layoutContainer(Container var1) {
  233.       synchronized(var1.getTreeLock()) {
  234.          Insets var3 = var1.getInsets();
  235.          int var4 = var1.width - (var3.left + var3.right + this.hgap * 2);
  236.          int var5 = var1.getComponentCount();
  237.          int var6 = 0;
  238.          int var7 = var3.top + this.vgap;
  239.          int var8 = 0;
  240.          int var9 = 0;
  241.          boolean var10 = var1.getComponentOrientation().isLeftToRight();
  242.          boolean var11 = this.getAlignOnBaseline();
  243.          int[] var12 = null;
  244.          int[] var13 = null;
  245.          if (var11) {
  246.             var12 = new int[var5];
  247.             var13 = new int[var5];
  248.          }
  249.  
  250.          for(int var14 = 0; var14 < var5; ++var14) {
  251.             Component var15 = var1.getComponent(var14);
  252.             if (var15.isVisible()) {
  253.                Dimension var16 = var15.getPreferredSize();
  254.                var15.setSize(var16.width, var16.height);
  255.                if (var11) {
  256.                   int var17 = var15.getBaseline(var16.width, var16.height);
  257.                   if (var17 >= 0) {
  258.                      var12[var14] = var17;
  259.                      var13[var14] = var16.height - var17;
  260.                   } else {
  261.                      var12[var14] = -1;
  262.                   }
  263.                }
  264.  
  265.                if (var6 != 0 && var6 + var16.width > var4) {
  266.                   var8 = this.moveComponents(var1, var3.left + this.hgap, var7, var4 - var6, var8, var9, var14, var10, var11, var12, var13);
  267.                   var6 = var16.width;
  268.                   var7 += this.vgap + var8;
  269.                   var8 = var16.height;
  270.                   var9 = var14;
  271.                } else {
  272.                   if (var6 > 0) {
  273.                      var6 += this.hgap;
  274.                   }
  275.  
  276.                   var6 += var16.width;
  277.                   var8 = Math.max(var8, var16.height);
  278.                }
  279.             }
  280.          }
  281.  
  282.          this.moveComponents(var1, var3.left + this.hgap, var7, var4 - var6, var8, var9, var5, var10, var11, var12, var13);
  283.       }
  284.    }
  285.  
  286.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  287.       var1.defaultReadObject();
  288.       if (this.serialVersionOnStream < 1) {
  289.          this.setAlignment(this.align);
  290.       }
  291.  
  292.       this.serialVersionOnStream = 1;
  293.    }
  294.  
  295.    public String toString() {
  296.       String var1 = "";
  297.       switch (this.align) {
  298.          case 0:
  299.             var1 = ",align=left";
  300.             break;
  301.          case 1:
  302.             var1 = ",align=center";
  303.             break;
  304.          case 2:
  305.             var1 = ",align=right";
  306.             break;
  307.          case 3:
  308.             var1 = ",align=leading";
  309.             break;
  310.          case 4:
  311.             var1 = ",align=trailing";
  312.       }
  313.  
  314.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + var1 + "]";
  315.    }
  316. }
  317.